﻿using Dora.Services.AdminUser.Dto.QueryDto;
using Dora.Services.AdminUser.Dto.SaveDto;
using Dora.Services.AdminUser.Dto.ViewDto;
using Dora.Services.AdminUser.Entities;
using Dora.Services.MessageNotice.Entities.Easemob.Request;
using Dora.Tools.Utility.Const;
using Dora.Tools.Utility.Models;
using Surging.Core.Common;
using Surging.Core.CPlatform.Ioc;
using Surging.Core.CPlatform.Runtime.Server.Implementation.ServiceDiscovery.Attributes;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace Dora.Services.AdminUser.IApplication
{
    /// <summary>
    /// 环信消息历史记录表服务接口
    /// </summary>
    [ServiceBundle("api/" + DoraModuleName.AdminUser + "/{Service}")]
    public interface IHxMsgHistoryService : IServiceKey
    {
        /// <summary>
        /// 分页获取数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-18", Director = "TTTan", Name = "分页获取数据")]
        Task<PageDataList<HxMsgHistoryEntity>> GetPageList(HxMsgHistoryQueryDto input);
        
        /// <summary>
        /// 环信保存文本历史消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-19", Director = "TTTan", Name = "环信保存文本历史消息")]
        Task<ResultDto<int>> MsgTextSave(HxMsgSaveDto<MsgText> input);

        /// <summary>
        /// 环信保存图片消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-20", Director = "TTTan", Name = "环信保存图片消息")]
        Task<ResultDto<int>> MsgImgSave(HxMsgSaveDto<MsgImg> input);

        /// <summary>
        /// 环信保存文件消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-20", Director = "TTTan", Name = "环信保存文件消息")]
        Task<ResultDto<int>> MsgFileSave(HxMsgSaveDto<MsgFile> input);

        /// <summary>
        /// 环信保存语音消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-20", Director = "TTTan", Name = "环信保存语音消息")]
        Task<ResultDto<int>> MsgAudioSave(HxMsgSaveDto<MsgAudio> input);

        /// <summary>
        /// 环信保存语音消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-20", Director = "TTTan", Name = "环信保存语音消息")]
        Task<ResultDto<int>> MsgVideoSave(HxMsgSaveDto<MsgVideo> input);

        /// <summary>
        /// 环信保存位置消息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [Service(Date = "2019-06-20", Director = "TTTan", Name = "环信保存位置消息")]
        Task<ResultDto<int>> MsgLocSave(HxMsgSaveDto<MsgLoc> input);
    }
}
